import { Component } from '@angular/core';
import { NavController ,ItemSliding, ModalController} from 'ionic-angular';
import { Title } from '@angular/platform-browser';
import { Task } from './task';
import { HttpDataProvider } from '../../providers/http-data/http-data';
import { InputTaskPage } from '../input-task/input-task';

@Component({
  selector: 'page-tasklist',
  templateUrl: 'tasklist.html'
})
export class TaskListPage {
  tasks:Array<Task>=[];

  constructor(public navCtrl: NavController,

    public modalCtrl:ModalController,

    public httpData: HttpDataProvider) {

  }
  /**
   * 显示待办事件的列表
   */
  
  ionViewDidLoad(){
    // this.tasks=[
    //   {title:'牛奶',status:'open'},
    //   {title:'鸡蛋',status:'open'},
    //   {title:'果汁',status:'open'},
    //   {title:'煎饼',status:'open'},
    // ];//  ctrl+/快速将选中的代码变成注释
    this.httpData.getTaskList().subscribe(tasks =>{this.tasks=tasks;
    
     console.log(tasks);
    });
  }
 
/**
   * 新增待办事项
   */
  addTask(){
    // let theNewTask: string=prompt("新任务");
    // if(theNewTask!==''){
    //     this.tasks.push({title:theNewTask,status:'open'});
    // }

    let addModal=this.modalCtrl.create(InputTaskPage);

    addModal.onDidDismiss((task:Task) => { 
         if(task){
           this.tasks.push(task);
         }

    });

    addModal.present();
    //增加待办事件按钮功能实现
  }//新建任务+有效果

  /**
   * 编辑待办事项(变更)
   * @param slidingItem 
   * @param task 
   */
  editTask(task:Task){
   if(task.status === 'done')//数据显示完成，直接输出
    return;
    const index : number = this.tasks.indexOf(task);
    let editModal = this.modalCtrl.create(InputTaskPage,{task: task});
    //创建数据，
    editModal.onDidDismiss((task)=>{
      if(task){
        this.tasks[index] = task;//把更新过的页面复制过来
      }
    });
    editModal.present();//编辑页面
  }

  /**
   * 
   * @param slidingItem 标记与删除按钮的功能实现
   * @param task 
   */

markAsDone(slidingItem:ItemSliding,task:Task){
  task.status='done';//让点击标记按钮有显示效果
  this.httpData.updateTask(task).subscribe();
  slidingItem.close();//关闭操作

}//标记功能任务显示
removeTask(slidingItem:ItemSliding,task:Task){
  task.status='removed';
  let index=this.tasks.indexOf(task);//找到索引
  if(index >-1){
    this.tasks.splice(index,1);//找到的话就从列表中删除一个
  }
  this.httpData.deleteTask(task).subscribe();
slidingItem.close();//关闭操作

}//删除功能任务显示

/**
 * 下拉刷新
 */
 
 doRefresh(refresher: any){
   setTimeout(() =>{
     this.httpData.getTaskList().subscribe(
     tasks =>{this.tasks=tasks
      console.log(tasks);
    });
    refresher.complete();//可以结束刷新
   },2000);//刷新时间为两秒
 }

}
